Skip to main content

Full text of "MCX 128 Hardware Info"

See other formats


MCX128 

Memory Expansion for the MC-10 

Hardware Information 


By Darren Atkinson 
January 5, 2011 



Overview 


The MCX128 is a memory expansion module for the TRS-80 MC-10 Micro Color 
Computer. The module includes the following features: 


• 128K RAM (utilizing Bank Selection). 

• 16K EPROM. 

• Four Memory Map modes for the ROM region (C000-FFFF): 

- 16K External ROM 

- 8K RAM / 8K External ROM 

- 8K RAM / 8K Internal ROM 

- 16K RAM 

• Software control of RAM Bank selection and Memory Map Mode. 



- 2 - 


Memory Map 


0000 - 0003 

6803 Ports 

0004 - 0007 

Expansion RAM 

0008 - 000E 

6803 Status / Control 

0 0 OF 

Expansion RAM 

0010 - 0013 

6803 UART 

0014 

6803 RAM Control Reg 

0015 - 001F 

Unused 

0020 - 0 07F 

Expansion RAM 

0080 - 00FF 

On-chip CPU RAM / Expansion RAM 

0100 - 3FFF 

Expansion RAM 

4000 - 4FFF 

Built-In RAM / Expansion RAM 

5000 - BEFF 

Expansion RAM 

BF00 

RAM Bank Control Reg 

BF01 

ROM Map Control Reg 

BF80 - BFFF 

Keyboard / VDG / Sound 

C000 - DFFF 

EPROM or Expansion RAM 

E000 - FFFF 

Built-in ROM, EPROM or Expansion RAM 


RAM Banks 

The MCX128 divides the 64K address space into two 32K pages. Page 0 is non- 
contiguous and covers the first 16K (0000-3FFF) and last 16K (C000-FFFF) of the 
address space. Page 1 covers the middle 32K (4000-BFFF) and corresponds to the region 
where the internal 4K and stock 16K expansion RAM would reside. 



- 3 - 




Each of these pages can be independently switched between two banks of RAM. The 
value stored in the RAM Bank Control Register (BFOO) determines which banks are 
active. The register can be read from, as well as written to: 



7 

6 

5 

4 

3 

2 

1 

0 

$BF00 

□ 

□ 

□ 

□ 

□ 

□ 

PI 

P0 


Bank Selection for Page 0 
Bank Selection for Page 1 


Bank selection does not affect addresses 0080-00FF if they are mapped to the 6803 
CPU’s on-chip RAM (default). 

The region from C000-FEFF is only affected by bank selection for addresses that are 
mapped to RAM by the ROM Map Control Register (see below). When the 16K RAM 
map mode is active, the upper 256 bytes of the address space (FF00-FFFF) are always 
mapped to bank 0 (the 256 bytes in bank 1 are never accessible). 

The VDG always reads video RAM from Bank 0 regardless of the current bank selection 
for page 1 . 


Built-In RAM 

The MC-lO’s 4K built-in RAM (4000-4FFF) is accessed when Bank 0 is selected for 
Page 1. Selecting Bank 1 maps this area to the RAM on the MCX128. The video display 
always uses the built-in RAM, so writing to this area while Bank 1 is selected does not 
affect the display. 


RAM for BASIC 

RAM available to stock MicroColor Basic is now nearly 32K (4000-BEFF). The 256 
bytes from BF00-BFFF are not mapped to RAM in order to retain access to the 
Keyboard, VDG and Sound hardware as well as to provide addressable locations for the 
RAM Bank and ROM Map control registers. 

The extended version of MicroColor Basic (MCX Basic) can use the entire 48K region 
from 0020 to BEFF, while managing the video display as a separate RAM bank. 


- 4 - 




Direct Page RAM 

There are 101 additional Direct Page addresses that can be utilized: 

• 0004-0007 

• 000F 

• 0020 - 007F 

Each of these addresses are also affected by the RAM Bank selection for Page 0, 
providing 202 physical storage locations. 

The 6803’s RAM Control Register (0014) can now be used to switch the address space of 
0080 - 00FF between the on-chip CPU RAM and the RAM on the MCX128. If the 
CPU’s on-chip RAM is enabled (default), writes to this area are mirrored by the RAM on 
the MCX128. 

ROM Region 

The MCX128 includes a socket for a 16K EPROM. Because the system starts up in 16K 
External ROM mode, an EPROM must be present to boot the MC-10. The ROM region 
(C000-FFFF) is sub-divided into two 8K sections. The value stored in the ROM Map 
Control Register (see below) determines how the two sections are used. 


ROM Map Control Register 

Reading from the two 8K ROM areas can obtain data from ROM or RAM depending on 
the value stored in the ROM Map Control Register (BF01). Reading the lower portion 
(C000-DFFF) can access either RAM or the external EPROM. Reading the upper 
portion (E000-FFFF) can access RAM, the external EPROM or the built-in ROM. 

NOTE: Writes to the ROM region always go to RAM. 

The ROM Map Control Register may be read from, as well as written to: 



7 

6 

5 

4 

3 

2 

1 

0 

$BF01 

□ 

□ 

□ 

□ 

□ 

□ 

Ml 

M0 


ROM Map Mode: 

0 0 = 16K External ROM 

0 1 = 8K RAM / 8K External ROM 

1 0 = 8K RAM / 8K Internal ROM 
11 = 16K RAM 


- 5 -